//
//  Status.swift
//  Weibo
//
//  Created by 明丽 on 16/1/17.
//  Copyright © 2016年 明丽. All rights reserved.
//

import UIKit
class Status: NSObject {
    
    //创建微博的时间
    var crested_at: String?
    //微博的id
    var id: Int64 = 0
    //微博的信息内容
    var text: String?
    //微博的来源
    var source: String?
    //用户如果不做任何的处理最终对应的是一个字典
    var user: User?
    //转发微博的属性
    var retweeted_status: Status?

    

    //配置视图,放在数组里,数组又放了对应的字典,图片是以字典形式存在的,
    var pic_urls: [[String : String]]?{
        didSet {
            if let urls = pic_urls where urls.count != 0 {
            //实例化化属性
                imageURLs = [NSURL]()
                for item in urls {
                
                let urlString = item["thumbnail_pic"]
                let imageURL = NSURL(string: urlString!)!
                //添加url地址
                imageURLs?.append(imageURL)
                
                
                }
        
            }
        }
        
}
    //计算行属性,有可能不止放一张图片
    var imageURLs:[NSURL]?
    
    
    //构造的方法
    init(dict: [String : AnyObject]) {
        super.init()
        setValuesForKeysWithDictionary(dict)
    }
    //重写KVC赋值的方法
    override func setValue(value: AnyObject?, forKey key: String) {
        if key == "user" {
            if let dict = value as? [String : AnyObject]{
            
            user = User(dict: dict)
                return
            
            }
    
        }
        if key == "retweeted_status" {
            //value 就是一个字典对象
            if let dict = value as? [String : AnyObject] {
                //能够转化为[String : AnyObject]字典对象
                //字典转模型
                retweeted_status = Status(dict: dict)
                
                //return  非常非常关键  前面的字典转模型 就白做了
                return
            }
        }

        
        
        super.setValue(value, forKey: key)
    }
    
    //过滤
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {}
    //重写用户信息
    override var description: String{
    let keys = ["created_at","id","text","source"]
    let dict = self.dictionaryWithValuesForKeys(keys)
        return dict.description
    
    }
    
    

}
